﻿using WebFoundation;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MHI.ScenarioManager.Interfaces
{
    public interface IScenarioList: IBaseWritableEntities<Scenario>, IEntities<Scenario>
    {
        List<Scenario> GetTemplateScenarios();

        List<Scenario> GetScenarioByModelType(enumScenarioType modelType);

        List<Scenario> GetScenarioByModelSubType(string modelSubType);

        List<Scenario> GetChildScenarioListByScenario(Guid scenarioId);

        Scenario GetScenario(string scenarioCode);

        Scenario CreateScenario(Scenario newScenario, Scenario parentScenario, string sProjectFile, bool bAsModelScenario, string sNewScenarioName, string subType, string sDescription);

        Scenario CreateScenario(string sProjectFile, bool bAsModelScenario, string sNewScenarioName, string subType, string sDescription);

        Scenario CreateScenario(Scenario newScenario, Scenario parentScenario, bool bAsModelScenario, string sNewScenarioName, string subType, string sDescription);

        Scenario CreateScenario(Scenario newScenario, bool bAsModelScenario, string sNewScenarioName, string subType, string sDescription);

        Scenario Copy(Scenario org, string nameName);

        bool DeleteScenarioByCode(string scenarioCode);
        
        Scenario Rename(string scenarioCode, string newScenarioName);

        bool IsCalculated(string scenarioCode);
    }
}
